from rest_framework.pagination import PageNumberPagination
from rest_framework.response import Response


class MyPagination(PageNumberPagination):
    """自定义分页器，构造我们业务约定的分页结构数据"""

    page_size = 10
    page_query_param = 'page'
    page_size_query_param = "pagesize"
    max_page_size = 20

    # 重写分页返回方法，按照指定的字段进行分页数据返回
    def get_paginated_response(self, data):
        # 参数data就是当前页数据 --> 查询集序列化的结果
        return Response({
            "count": self.page.paginator.count,     # 总数量
            "page": self.page.number,               # 当前页数
            "pages": self.page.paginator.num_pages, # 总页数
            "pagesize": self.page_size,             # 总页数
            "lists": data,                          # 用户数据
        })

